Methods and apparatus for vehicle operation analysis

ABSTRACT

Methods and apparatus are disclosed to monitor and evaluate vehicle operator behavior. An example method includes processing, using a particularly programmed processor, image data obtained with respect to a vehicle to identify an object in the image data. The example method includes measuring, using the mobile device, a geographic location of the vehicle. The example method includes determining, using the mobile device, an operating state of the vehicle. The example method includes analyzing the object in the image data, the geographic location, and the operating state of the vehicle to determine a behavior of the vehicle. The example method includes generating a score for a driver associated with the vehicle by comparing the behavior of the vehicle with a reference behavior, the reference behavior quantified by one or more driving metrics. The example method includes outputting the score.

FIELD OF THE DISCLOSURE

This disclosure relates generally to vehicle operation, and, moreparticularly, to methods and apparatus for vehicle operation analysis.

BACKGROUND

Mobile devices, such as tablets, smartphones, and cameras, are widelyused in monitoring and communications today. Mobile devices help totrack individuals and items and provide a greater sense of security andconnectedness. Mobile devices, however, remain disconnected from manyaspects of human life and activity. Many untapped opportunities existthat can benefit from information capture and processing via a mobiledevice.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an example data collection environment.

FIG. 2 illustrates further detail regarding an implementation of theexample mobile device of FIG. 1.

FIG. 3 illustrates further detail regarding an implementation of theexample application server of FIG. 1

FIG. 4 illustrates a flowchart representative of examplemachine-readable instructions that can be executed to implement anexample data collection environment FIGS. 1-3 to generate an analysis ofvehicle operator behavior.

FIG. 5 is a flowchart providing further example detail for a portion ofthe process of FIG. 4 to gather information regarding vehicle operation.

FIG. 6 is a flowchart providing further example detail for a portion ofthe process of FIG. 4 to process gathered information regarding vehicleoperation.

FIG. 7 illustrates an example analyzed image including a plurality ofdriver events identified in the image.

FIG. 8 is a flowchart providing further example detail for a portion ofthe process of FIG. 4 to generate an evaluation based on the processeddata.

FIG. 9 illustrates an example stop sign assessment.

FIG. 10 illustrates a driver evaluation report.

FIG. 11 is an example processor platform capable of executing theexample instructions of FIGS. 4-6 and 8 to implement the exampleenvironment and devices of FIGS. 1-3, 7, and 9-10.

The figures are not to scale. Wherever possible, the same referencenumbers will be used throughout the drawing(s) and accompanying writtendescription to refer to the same or like parts.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying drawings that form a part hereof, and in which is shown byway of illustration specific examples that may be practiced. Theseexamples are described in sufficient detail to enable one skilled in theart to practice the subject matter, and it is to be understood thatother examples may be utilized and that logical, mechanical, electricaland/or other changes may be made without departing from the scope of thesubject matter of this disclosure. The following detailed descriptionis, therefore, provided to describe example implementations and not tobe taken as limiting on the scope of the subject matter described inthis disclosure. Certain features from different aspects of thefollowing description may be combined to form yet new aspects of thesubject matter discussed below.

When introducing elements of various embodiments of the presentdisclosure, the articles “a,” “an,” “the,” and “said” are intended tomean that there are one or more of the elements. The terms “comprising,”“including,” and “having” are intended to be inclusive and mean thatthere may be additional elements other than the listed elements.

Using an onboard camera and one or more sensors, data regarding vehicleoperation can be harvested from digital image processing, which is thencompared against car state information and geo-location data to evaluatevehicle/driver performance. Mobile application feedback can provide asummary with an overall score for driver behavior, as well as anindividual breakdown for each monitored metric, for example.

Such a monitoring, evaluation, and feedback mechanism helps to monitordrivers in training (e.g., student drivers, truckers and/or otherdelivery drivers in training, etc.), for example. Parents can monitorand receive feedback regarding the quality of their child's drivingbehavior, for example. Additionally, insurance companies can use theevaluation data to provide discounts, rebates, etc., to drivers withexceptional driving behavior (e.g., scoring greater than a threshold,etc.), for example. Insurance cost for a driver can be better calculatedwith an improved understanding of that driver's risk, for example.Companies who employ drivers can use the evaluation data to help ensureemployees are compliant with acceptable business guidelines, forexample. Vehicle manufacturers can change vehicle design based onunderstanding customer driving patterns, for example. Law enforcementcan apply analytics to deduce a cause of an accident or pursue a theft,for example. Accidents can be reduced or prevented based on an improvedunderstanding of area driving behavior, for example. Evaluations canoccur in a snapshot and/or be compiled over time to show a compositescore, trend in behavior, etc.

Certain examples provide systems and methods to monitor operation of avehicle by a driver and generate a report that assigns a score to thedriver's behavior based on a combination of factors measured by sensorsand processed. For example, digital image data analysis, locationservices, and car status or state information (e.g., speed) can becombined to form a report card including a driver score for each factorand an overall or aggregate score for total performance. Digital imagedata analysis can be facilitated using one or more machine learningtechniques to break down the recorded image data, such as providingvideo footage to an artificial neural network and using independentcomponent analysis to identify objects and relationships in the imagedata. The object and relationship analysis can be used with geo-locationservices (e.g., global positioning system (GPS)) and car status (e.g.,stopped, parked, traveling at a certain speed, etc.) to generatescore(s) for the associated driver. Scoring can be used to evaluate thedriver's performance with respect to factors such as obeying stop signs,obeying traffic lights, speeding, turn-signal usage, cornering g-force(e.g., sharpness of a turn), lane centering (e.g., staying in adesignated lane), and lead-car proximity (e.g., closeness to a car infront of the monitored vehicle). Such evaluations can be used by avariety of audiences including: 1) by parents of younger drivers, 2) byinsurance companies to evaluate driver behavior and reconstructaccidents, 3) by auto and other manufacturers to gauge customer usageand behavior, and 4) by law enforcement in instances of accidents,carjacking, theft, etc.

Thus, certain examples provide a data monitoring, aggregation, analysis,and reporting platform to process information from multiplevehicle-based systems and generate an analysis illustrating driverbehavior.

FIG. 1 is an example data collection environment 100 including anexample vehicle 102 (e.g., an automobile, truck, sport utility vehicle,all-terrain vehicle, airplane, helicopter, boat, etc.) moving along apath 104 in an example geographic area 106. The vehicle 102 includes amobile device 108 which monitors operation of the vehicle 102 andcommunicates with one or more external devices to exchange informationregarding the vehicle 102 and operation of the vehicle 102.

The example mobile device 108 can be implemented using, for example, alaptop computer, a tablet, a smartphone, an application specificintegrated circuit (ASIC), and/or any other type of mobile computingdevice. In some examples, the mobile device 108 can be a subcomponent ofanother device. In some examples, the mobile device 108 can be connectedto and/or integrated within the motorized vehicle 102 that can be drivenand/or maneuvered within the example geographic area 106.

In the illustrated example of FIG. 1, the geographic area 106 includesthe path 104 (e.g., a road, waterway, route, etc.) as well as one ormore communication devices, such as cellular base station(s) 110, 112,114 and/or one or more example wireless access point(s) 116. The examplemobile device 108 can acquire, receive, access and/or utilize one ormore form(s) of cellular and/or Wi-Fi® connectivity within the examplearea 106 via one or more of the communication devices 110, 112, 114, 116to support one or more type(s) of communication services (e.g., locationdetermination, text messaging, voice calling, network browsing,streaming media, etc.) via a cellular and/or Wi-Fi® service providersuch as AT&T®, Verizon®, T-Mobile®, Sprint®, etc.). In the illustratedexample, the mobile device 108 can also communicate with one or moreGlobal Positioning System (GPS) satellite(s) 118 to identify a locationof the mobile device 108 within the example geographic area 106 based onone or more signal(s) from the satellite 118.

For example, the signal(s) received by the mobile device 108 from theGPS satellite 118 may contain information from which the currentlatitude, longitude and/or altitude of the mobile device 108 can beidentified and/or derived. The signal(s) received by the mobile device108 from the GPS satellite 118 may also include information from which acurrent time can be identified and/or derived.

Using information from the one or more communication devices 110, 112,114, 116, 118, the mobile device 108 may receive and/or be able todetermine a location of the vehicle 102 corresponding to the mobiledevice 108 at a point in time. Thus, as shown in the illustrated exampleof FIG. 1, the mobile device 108 can communicate with the one or morecommunication devices 110, 112, 114, 116, and/or 118 to determine aplurality of locations 120, 122, 124, 126, 128 of the vehicle 102 as thevehicle is operated along the path 104. The locations 120-128 can belatitude and longitude coordinates, relative location within thegeographic area 106, and/or other indication of a location (e.g., L0,L1, L2, L3, L4, etc.) of the vehicle 102 at a point in time (e.g., T0,T1, T2, T3, T4, etc.). A speed of the vehicle 102 can be determinedbased on a change in location (e.g., L0 to L1) over a period of time(e.g., T0 to T1), for example.

The example mobile device 108 can also communicate with an applicationserver 130 (e.g., a communication server, a cloud-based server, etc.) toreceive and/or transmit information regarding location, operating state,operating behavior, etc., with respect to the vehicle 102. The mobiledevice 108 can also transmit video footage (e.g., obtained via themobile device 108, from a dashboard camera (not shown) in communicationwith the mobile device 108, etc.) to the application server 130 foranalysis, for example.

Using a plurality of measured factors (e.g., vehicle 102 location,speed, captured video analysis, and/or other operating stateinformation), a behavior of the vehicle 102 (and, thereby, driver) canbe analyzed and determined. An evaluation of the determined behavior canbe used to generate a score for the driver associated with the vehicle102. The score can be generated by comparing driver behavior to a“normal” or reference driver behavior, for example. The referencebehavior can be represented by a profile or set of one or more scorescompiled and quantified according to one or more driving metrics thathave been measured from representative drivers and/or specified by law,for example.

FIG. 2 illustrates further detail regarding an implementation of theexample mobile device 108 of FIG. 1. In the illustrated example of FIG.2, the mobile device 108 includes an example GPS receiver 202 with anexample antenna 204, an example radio receiver 206 with an exampleantenna 208, an example radio transmitter 210 with an example antenna212, an example speedometer 214, an example image analyzer 216, anexample state determiner 218, an example data repository 220, and anexample user interface 222. However, other example implementations ofthe mobile device 108 may include fewer or additional structures toprocess information to analyze and qualify vehicle (and associateddriver) behavior in accordance with the teachings of this disclosure.

In the illustrated example of FIG. 2, the example GPS receiver 202collects, acquires and/or receives one or more signals from one or moreGPS satellites (e.g., the GPS satellite 118 of FIG. 1), as describedabove. In the illustrated example, the GPS receiver 202 includes theexample antenna 204 to facilitate the receipt of one or more signalsfrom the one or more GPS satellites. The signal(s) received by the GPSreceiver 202 may include information from which current the location ofthe mobile device 108 may be identified and/or derived, including forexample, the current latitude, longitude and/or altitude of the mobiledevice 108. The signal(s) received by the GPS receiver 202 may alsocontain information from which the current time can be identified and/orderived. Data identified and/or derived from the signal(s) collectedand/or received by the example GPS receiver 202 may be stored in acomputer-readable storage medium such as the example data repository 220described below.

In the illustrated example of FIG. 2, the example radio receiver 206collects, acquires and/or receives one or more cellular and/or Wi-Fi®signals from one or more cellular base stations (e.g., the examplecellular base stations 110, 112, 114 of FIG. 1) and/or one or morewireless access points (e.g., the example wireless access point 116 ofFIG. 1), as described above. In the illustrated example, the radioreceiver 206 includes an example antenna 208 to facilitate the receiptof one or more signals from the one or more cellular base stationsand/or wireless access points including information that can be used toidentify the location of the mobile device 108 at a given time. Forexample, the radio receiver 206 may receive cellular and/or Wi-Fi®signals via which the mobile device 108 may implement an Assisted GPS(A-GPS) process and/or Location Based Services (LBS). Data identifiedand/or derived from the signal(s) collected and/or received by theexample radio receiver 206 may be stored in a computer-readable storagemedium such as the example data repository 220 described below. Locationinformation can also be displayed via the example user interface 222(e.g., a display screen, liquid crystal display (LCD), light emittingdiode (LED), touchscreen display, etc.) of the mobile device 108, forexample.

In the illustrated example of FIG. 2, the example radio transmitter 210transmits one or more cellular and/or Wi-Fi® signals to one or morecellular base stations (e.g., the example cellular base stations 110,112, 114 of FIG. 1) and/or one or more wireless access points (e.g., theexample wireless access point 116 of FIG. 1). In the illustratedexample, the radio transmitter 210 includes an example antenna 212 tofacilitate the transmission of one or more signals to the one or morecellular base stations and/or wireless access points. In some examples,the transmission of one or more signals from the example radiotransmitter 210 to the one or more cellular base stations and/orwireless access points may result in the one or more base stationsand/or wireless access points transmitting to the example radio receiver206 one or more signals including information from which location and/orother operating state information may be identified and/or derived. Theexample radio transmitter 210 may also be used to transmit informationfrom the mobile device 108 to the application server 130, for example.

In the illustrated example of FIG. 2, the example speedometer 214receives location and time information 120-128 from the GPS receiver 202and/or radio receiver 206 and uses the location and time information120-128 to determine a speed at which the vehicle 102 is traveling.Alternatively or in addition, the speedometer 214 can be incommunication with the vehicle 102 to measure the vehicle's speed (e.g.,by communicating with the vehicle's speedometer, engine, draft shaft,etc.).

In the illustrated example of FIG. 2, the example image analyzer 216receives image data (e.g., video footage, still images, etc.) from anexternal camera, such as a dashboard camera, (e.g., via the radioreceiver 206) and/or from a camera integrated with the mobile device 108(not shown). The image analyzer 216 processes the video and/or stillimage data to identify objects and relationships in the image data.

For example, one or more machine learning techniques such as anartificial neural network (also referred to as a neural network), otherpattern recognition, etc., can be applied by the image analyzer 216 tothe image data to identify objects and/or other features in the imagedata. An artificial neural network can be implemented by the imageanalyzer 216 in a variety of ways. In certain examples, the imageanalyzer 216 forms the artificial neural network locally. In otherexamples, the image analyzer 216 communicates with an external device,such as the example application server 130, which implements theartificial neural network. Neural networks and/or other machine learningmethods can be used to identify features in the image data, a task whichis otherwise difficult using rules-based programming.

An artificial neural network is first trained based on known orreference data. Training can involve tuning weights for various elementsor nodes in the network using the known, predetermined, or referencedata (e.g., image data in which identification and location of objectsand/or other features in the image is already known). The trained neuralnetwork can then be used on additional image data to analyze andidentify features of interest (e.g., stop signs, traffic lights,vehicles, pedestrians, cross-walks, etc.). The artificial neural networkcan leverage information from the data repository 220, for example, toassist in training and implementing the neural network. The artificialneural network can store network weights and/or other configurationinformation in the data repository 220, for example.

The example artificial neural network can be implemented in a variety ofways including with principal component analysis, independent componentanalysis, cascade learning, etc. For example, an artificial neuralnetwork with independent component analysis can be used to isolatefeatures in an image (e.g., facial recognition, sign recognition, otherobject recognition, etc.). Using independent component analysis (alsoknown as blind source separation), a set of independent components issought from a combination of elements. That is, individual objects orfeatures are sought amongst a plurality of image data (e.g., fromdashboard camera footage, etc.). In independent component analysis, twocomponents or features are considered independent if knowledge of onecomponent implies nothing about the other component. Independentcomponent analysis can be used by an artificial neural network toanalyze data points (e.g., pixels, voxels, etc.) in the image data andorganize related data points (e.g., by color, by proximity, byidentified boundary, etc.) into objects or features in the image data.

Weights (also referred to as network weights or neural network weights)can be determined based on data point values and arrangements identifiedin analyzed image data. For example, an initial set of weights can bedetermined by neural network analysis of image data during a networktraining phase. One or more of the weights can be modified by values,patterns, etc., analyzed during an operational phase of the artificialneural network, for example.

In certain examples, using cascade learning (also referred to ascascading learning or cascade correlation), involves beginning with aminimal network of nodes (also referred to as neurons or units), whichthen automatically trains and expands the network to add new “hidden”nodes, resulting in a multi-layered structure. Once a new hidden nodehas been added to the network, its input-side weights are frozen. Theunit then becomes a feature-detector in the network, available forproducing outputs or for creating other, more complex feature detectors.Using cascade learning, the neural network can determine its own sizeand topology and retains the structures it has built even if itstraining set changes, for example. Cascade learning can be used by theartificial neural network to evaluate portions of the image data forobject/feature detection, for example.

In certain examples, the artificial neural network can employ bothindependent component analysis and cascade learning to target relevantfeatures in the image data (e.g., within the dashboard camera or“dash-cam” footage). The feature transformation technique of independentcomponent analysis combined with cascade learning allows the neuralnetwork to isolate local features within an image.

The artificial neural network (or an array of artificial neural networksat an external device such as the example application server 130, etc.)is trained to target a set of important objects (e.g., stop signs,traffic lights, car bumpers, pedestrians, crosswalks, obstacles, etc.).Once these objects are identified in the image data, the image analyzer216 applies geometry to calculate distance (e.g., distance betweenidentified objects in the image data, distance between an object and thevehicle 102, etc.).

In the illustrated example of FIG. 2, the example state determiner 218receives information from one or more of the GPS receiver 202, radioreceiver 206, speedometer 214, the image analyzer 216, the datarepository 220, and the user interface 222 to determine an operatingstate of the vehicle 102 (and/or its driver). Available data from thesesources is combined by the state determiner 218 to evaluate a quality ofdriving and/or other operational state associated with the vehicle.

For example, the state determiner 218 combines data from the abovesources (e.g., the GPS receiver 202, radio receiver 206, speedometer214, image analyzer 216, data repository 220, user interface 222, etc.),when available, to determine an operating state of the vehicle 102and/or its operator/driver. An operator's quality of driving can bequantified based on a plurality of driving events identified andevaluated using data from the available sources. Driving events caninclude stop signs, traffic lights, vehicle speed, turn signal usage,cornering g-force, lane centering (e.g., how well the vehicle 102 staysin its lane), lead car proximity (e.g., a measure of tailgating), etc.

In certain examples, the state determiner 218 compares data analysis ofdashboard camera and/or other image footage from the image analyzer 216against geo-location data from the GPS receiver 202 and/or radioreceiver 206, vehicle speed information from the speedometer 214, and/orother vehicle 102 and/or operator state information provided to themobile device 108. For example, as the vehicle 102 approaches a stopsign, the image analyzer 216 identifies the stop sign object from thevideo feed from a camera in the vehicle 102. Distance traveled andvehicle speed are also monitored to determine if the driver brought thevehicle 102 to a complete stop at the stop sign, rolled through the stopsign without coming to a complete stop, or ran the stop sign. Thedriver's behavior at this stop sign event is added by the statedeterminer 218 (alone or in conjunction with the application server 130)to other stop sign events. An average stop sign metric can be calculatedover a given time period by the state determiner 218 and/or theapplication server 130. Other events related to the driving metricsidentified above can be similarly calculated, alone or in combination.

The state determiner 218 and/or the application server generates a scoreor set of scores for the driver of the vehicle and provides a summarywith an overall score for driver behavior, as well as an individualbreakdown for each metric via the user interface 222 of the mobiledevice. Such information can also be stored in the data repository 220for continued monitoring, trending, and/or use in further metricanalysis, for example.

FIG. 3 illustrates further detail regarding an implementation of theexample application server 130 of FIG. 1. In the illustrated example ofFIG. 3, the application server 130 includes an example vehicle datainput 302 with an example interface 304, an example image analyzer 306,an example state determiner 308, an example data repository 310, anexample user interface 312, and an example mobile device output 314 withan example interface 316. However, other example implementations of theapplication server 130 may include fewer or additional structures toprocess information to analyze and qualify vehicle (and associateddriver) behavior in accordance with the teachings of this disclosure.

In the illustrated example of FIG. 3, the example vehicle data input 302collects, acquires and/or receives one or more inputs from the mobiledevice 108 via the interface 304 such as vehicle 102 locationinformation, time information, speed information, image data, image dataanalysis, vehicle/operator state information, etc. The example interface304 can include an antenna, a wireless communication interface, a wiredcommunication interface, etc. Data identified and/or derived from thesignal(s) collected and/or received by the example vehicle data input302 may be stored in a computer-readable storage medium such as theexample data repository 310 described below. Received information canalso be displayed via the example user interface 312 (e.g., a displayscreen, liquid crystal display (LCD), light emitting diode (LED),touchscreen display, etc.) of the example application server 130, forexample.

In the illustrated example of FIG. 3, the example image analyzer 306receives image data (e.g., video footage, still images, etc.) and/orimage analysis via the vehicle data input 302. As discussed above, insome examples, the image analyzer 216 of the example mobile device 108processes the video and/or still image data to identify objects andrelationships in the image data, and the identified objects andrelationships are provided to the image analyzer 306 of the exampleapplication server 130. In other examples, the image analyzer 306received the video and/or still image data sent from the mobile device108 and processes the image data itself at the application server 130.

For example, one or more machine learning techniques such as anartificial neural network (also referred to as a neural network), otherpattern recognition, etc., can be applied by the image analyzer 306 tothe image data to identify objects and/or other features in the imagedata. An artificial neural network can be implemented by the imageanalyzer 306 in a variety of ways. Neural networks and/or other machinelearning methods can be used to identify features in the image data, atask which is otherwise difficult using rules-based programming.

An artificial neural network is first trained based on known orreference data. Training can involve tuning weights for various elementsor nodes in the network using the known, predetermined, or referencedata (e.g., image data in which identification and location of objectsand/or other features in the image is already known). The trained neuralnetwork can then be used on additional image data to analyze andidentify features of interest (e.g., stop signs, traffic lights,vehicles, pedestrians, cross-walks, etc.). The artificial neural networkcan leverage information from the data repository 310 and/or from themobile device 108, for example, to assist in training and implementingthe neural network. The artificial neural network can store networkweights and/or other configuration information in the data repository310, for example. In certain examples, once the application server 130has trained the neural network, the neural network can be deployedlocally, via the output 314 and interface 316, for execution by theimage analyzer 216 at one or more mobile devices 108.

As described above with respect to FIG. 2, the example artificial neuralnetwork can be implemented in a variety of ways including with principalcomponent analysis, independent component analysis, cascade learning,etc. For example, an artificial neural network with independentcomponent analysis can be used to isolate features in an image (e.g.,facial recognition, sign recognition, other object recognition, etc.).Using independent component analysis (also known as blind sourceseparation), a set of independent components is sought from acombination of elements. That is, individual objects or features aresought amongst a plurality of image data (e.g., from dashboard camerafootage, etc.). In independent component analysis, two components orfeatures are considered independent if knowledge of one componentimplies nothing about the other component. Independent componentanalysis can be used by an artificial neural network to analyze datapoints (e.g., pixels, voxels, etc.) in the image data and organizerelated data points (e.g., by color, by proximity, by identifiedboundary, etc.) into objects or features in the image data.

Weights (also referred to as network weights or neural network weights)can be determined based on data point values and arrangements identifiedin analyzed image data. For example, an initial set of weights can bedetermined by neural network analysis of image data during a networktraining phase. One or more of the weights can be modified by values,patterns, etc., analyzed during an operational phase of the artificialneural network, for example.

In certain examples, using cascade learning (also referred to ascascading learning or cascade correlation), involves beginning with aminimal network of nodes (also referred to as neurons or units), whichthen automatically trains and expands the network to add new “hidden”nodes, resulting in a multi-layered structure. Once a new hidden nodehas been added to the network, its input-side weights are frozen. Theunit then becomes a feature-detector in the network, available forproducing outputs or for creating other, more complex feature detectors.Using cascade learning, the neural network can determine its own sizeand topology and retains the structures it has built even if itstraining set changes, for example. Cascade learning can be used by theartificial neural network to evaluate portions of the image data forobject/feature detection, for example.

In certain examples, the artificial neural network can employ bothindependent component analysis and cascade learning to target relevantfeatures in the image data (e.g., within the dashboard camera or“dash-cam” footage). The feature transformation technique of independentcomponent analysis combined with cascade learning allows the neuralnetwork to isolate local features within an image.

The artificial neural network (or an array of artificial neuralnetworks) is trained to target a set of important objects (e.g., stopsigns, traffic lights, car bumpers, pedestrians, crosswalks, obstacles,etc.). Once these objects are identified in the image data, the imageanalyzer 306 applies geometry to calculate distance (e.g., distancebetween identified objects in the image data, distance between an objectand the vehicle 102, etc.).

In the illustrated example of FIG. 3, the example state determiner 308receives information from one or more of the vehicle data input 302, theimage analyzer 306, the data repository 310, and the user interface 312to determine an operating state of the vehicle 102 (and/or its driver).Available data from these sources is combined by the state determiner308 to evaluate a quality of driving and/or other operational stateassociated with the vehicle.

For example, the state determiner 308 combines data from the abovesources (e.g., the example vehicle data input 302, image analyzer 306,data repository 310, user interface 312, etc.), when available, todetermine an operating state of the vehicle 102 and/or itsoperator/driver. An operator's quality of driving can be quantifiedbased on a plurality of driving events identified and evaluated usingdata from the available sources. Driving events can include stop signs,traffic lights, vehicle speed, turn signal usage, cornering g-force,lane centering (e.g., how well the vehicle 102 stays in its lane), leadcar proximity (e.g., a measure of tailgating), etc. The data repository310 can include one or more rules regarding driving norms, driving laws,expected reactions, etc., to be used in comparison to obtained data toevaluate vehicle/operator 102 behavior.

The state determiner 308 generates a score or set of scores for thedriver of the vehicle and provides a summary with an overall score fordriver behavior, as well as an individual breakdown for each metric viathe user interface 222 of the mobile device. Such information can alsobe stored in the data repository 220 for continued monitoring, trending,and/or use in further metric analysis, for example.

While an example manner of implementing the example mobile device 108 ofFIG. 1 is illustrated in FIG. 2, one or more of the elements, processesand/or devices illustrated in FIG. 2 may be combined, divided,re-arranged, omitted, eliminated and/or implemented in any other way.Further, the example GPS receiver 202, the example radio receiver 206,the example radio transmitter 210, the example speedometer 214, theexample image analyzer 216, the example state determiner 218, theexample data repository 220, the example user interface 222 and/or, moregenerally, the example mobile device 108 of FIG. 2 may be implemented byhardware, software, firmware and/or any combination of hardware,software and/or firmware. Thus, for example, any of the example GPSreceiver 202, the example radio receiver 206, the example radiotransmitter 210, the example speedometer 214, the example image analyzer216, the example state determiner 218, the example data repository 220,the example user interface 222 and/or, more generally, the examplemobile device 108, can be implemented by one or more analog or digitalcircuit(s), logic circuits, programmable processor(s), applicationspecific integrated circuit(s) (ASIC(s)), programmable logic device(s)(PLD(s)) and/or field programmable logic device(s) (FPLD(s)). Whenreading any of the apparatus or system claims of this patent to cover apurely software and/or firmware implementation, at least one of theexample GPS receiver 202, the example radio receiver 206, the exampleradio transmitter 210, the example speedometer 214, the example imageanalyzer 216, the example state determiner 218, the example datarepository 220, the example user interface 222 and/or, more generally,the example mobile device 108 is/are hereby expressly defined to includea tangible computer readable storage device or storage disk such as amemory, a digital versatile disk (DVD), a compact disk (CD), a Blu-raydisk, etc., storing the software and/or firmware. Further still, theexample mobile device 108 of FIG. 2 may include one or more elements,processes and/or devices in addition to, or instead of, thoseillustrated in FIG. 2, and/or may include more than one of any or all ofthe illustrated elements, processes and devices.

Additionally, while an example manner of implementing the exampleapplication server 130 of FIG. 1 is illustrated in FIG. 3, one or moreof the elements, processes and/or devices illustrated in FIG. 3 may becombined, divided, re-arranged, omitted, eliminated and/or implementedin any other way. Further, the example vehicle data input 302, theexample image analyzer 306, the example state determiner 308, theexample data repository 310, the example user interface 312, and theexample mobile device output 314 and/or, more generally, the exampleapplication server 130 of FIG. 3 may be implemented by hardware,software, firmware and/or any combination of hardware, software and/orfirmware. Thus, for example, any of the example vehicle data input 302,the example image analyzer 306, the example state determiner 308, theexample data repository 310, the example user interface 312, and theexample mobile device output 314 and/or, more generally, the exampleapplication server 130 can be implemented by one or more analog ordigital circuit(s), logic circuits, programmable processor(s),application specific integrated circuit(s) (ASIC(s)), programmable logicdevice(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)).When reading any of the apparatus or system claims of this patent tocover a purely software and/or firmware implementation, at least one ofthe example vehicle data input 302, the example image analyzer 306, theexample state determiner 308, the example data repository 310, theexample user interface 312, and the example mobile device output 314and/or, more generally, the example application server 130 is/are herebyexpressly defined to include a tangible computer readable storage deviceor storage disk such as a memory, a digital versatile disk (DVD), acompact disk (CD), a Blu-ray disk, etc., storing the software and/orfirmware. Further still, the example application server 130 of FIG. 3may include one or more elements, processes and/or devices in additionto, or instead of, those illustrated in FIG. 3, and/or may include morethan one of any or all of the illustrated elements, processes anddevices.

Flowcharts representative of example machine-readable instructions forimplementing the example mobile device 108, the application server 130,and/or the environment 100 of FIGS. 1-3 are shown in FIGS. 4-6 and 8. Inthese examples, the machine-readable instructions comprise one or moreprogram(s) for execution by a processor such as the processor 1112 shownin the example processor platform 1100 discussed below in connectionwith FIG. 11. The one or more program(s) may be embodied in softwarestored on a tangible computer readable storage medium such as a CD-ROM,a floppy disk, a hard drive, a digital versatile disk (DVD), a Blu-raydisk, or a memory associated with the processor 1112, but the entireprogram(s) and/or parts thereof could alternatively be executed by adevice other than the processor 1112 and/or embodied in firmware ordedicated hardware. Further, although the example program(s) is/aredescribed with reference to the flowcharts illustrated in FIGS. 4-6 and8, many other methods of implementing the example mobile device 108,application server 130, and/or environment 100 may alternatively beused. For example, the order of execution of the blocks may be changed,and/or some of the blocks described may be changed, eliminated, orcombined.

As mentioned above, the example processes of FIGS. 4-6 and 8 may beimplemented using coded instructions (e.g., computer and/ormachine-readable instructions) stored on a tangible computer readablestorage medium such as a hard disk drive, a flash memory, a read-onlymemory (ROM), a compact disk (CD), a digital versatile disk (DVD), acache, a random-access memory (RAM) and/or any other storage device orstorage disk in which information is stored for any duration (e.g., forextended time periods, permanently, for brief instances, for temporarilybuffering, and/or for caching of the information). As used herein, theterm “tangible computer readable storage medium” is expressly defined toinclude any type of computer readable storage device and/or storage diskand to exclude propagating signals and to exclude transmission media. Asused herein, “tangible computer readable storage medium” and “tangiblemachine readable storage medium” are used interchangeably. Additionallyor alternatively, the example processes of FIGS. 4-6 and 8 may beimplemented using coded instructions (e.g., computer and/ormachine-readable instructions) stored on a non-transitory computerand/or machine-readable medium such as a hard disk drive, a flashmemory, a read-only memory, a compact disk, a digital versatile disk, acache, a random-access memory and/or any other storage device or storagedisk in which information is stored for any duration (e.g., for extendedtime periods, permanently, for brief instances, for temporarilybuffering, and/or for caching of the information). As used herein, theterm “non-transitory computer readable medium” is expressly defined toinclude any type of computer readable storage device and/or storage diskand to exclude propagating signals and to exclude transmission media. Asused herein, when the phrase “at least” is used as the transition termin a preamble of a claim, it is open-ended in the same manner as theterm “comprising” is open ended.

FIG. 4 is a flowchart representative of example machine-readableinstructions 400 that may be executed to implement the example datacollection environment 100 including the example mobile device 108 ofFIGS. 1-2 and the example application server 130 of FIGS. 1 and 3 togenerate an analysis of vehicle operator behavior. At block 410,environmental information regarding vehicle 102 operation is gathered bythe example mobile device 108 and/or application server 130. Forexample, vehicle 102 location, time, speed, cornering, distance betweenadjacent cars, movement and/or other patterns indicating observance oflaws, etc., are gathered and/or otherwise collected by one or moresensors in or in view of the vehicle 102.

For example, the example GPS receiver 202 can collect, acquire and/orreceive one or more signals from one or more GPS satellites (e.g., theGPS satellite 118 of FIG. 1) regarding vehicle 102 location, asdescribed above, including information from which the current time canbe identified and/or derived. The example radio receiver 206 can alsocollect, acquire and/or receive one or more cellular and/or Wi-Fi®signals from one or more cellular base stations (e.g., the examplecellular base stations 110, 112, 114 of FIG. 1) and/or one or morewireless access points (e.g., the example wireless access point 116 ofFIG. 1), as described above, including information that can be used toidentify the location of the mobile device 108 at a given time. Theexample image analyzer 216 can also receive image data (e.g., videofootage, still images, etc.) from an external camera, such as adashboard camera, (e.g., via the radio receiver 206) and/or from acamera integrated with the mobile device 108 (not shown), as describedabove with respect to FIG. 2.

At block 420, the gathered environmental data is processed. For example,change in geographic location and elapsed time information can becombined to determine vehicle 102 speed. Image data can be analyzed toidentify objects/features in the still and/or video image data as wellas distance between each identified object and the vehicle 102. A neuralnetwork and/or other machine learning can be implemented and trained forongoing data analysis, for example.

At block 430, a score, profile, and/or other evaluation is generatedbased on the processed data. For example, a driver risk assessment,performance assessment, compliance assessment, etc., can be computed byevaluating one or more factors including vehicle 102 speed in comparisonwith posted speed limit, compliance with stop signs and stop lights,cornering speed, distance maintained between adjacent vehicles, turnsignal usage, acceleration, staying in lane, etc.

At block 440, the evaluation is output. For example, a report includingthe vehicle and/or operator assessment/evaluation can be output to theoperator and/or other recipient (e.g., insurance company, car rentalcompany, car manufacturer, law enforcement agency, etc.) in printedform, electronically, etc.

FIG. 5 is a flowchart representative of example machine-readableinstructions that may be executed to implement block 410 of FIG. 4 togather information regarding vehicle operation. At block 510, a timepacket is formed from image data captured with respect to the vehicle102. For example, dashboard camera footage is streamed into the datarepository 220, and a time packet is formed from the camera footage inthe repository 220. The time packet is a dynamic data representation ofvehicle/operator behavior classified by data type (e.g., image data,etc.) and time (e.g., image data time stamp, etc.), for example.

At block 520, geo-location data is added to the time packet. Forexample, geo-location data can be received from one or more cellularbase stations 110, 112, 114, wireless access point(s) 116, and GPSsatellite(s) 118. For example, the GPS and/or radio receivers 202, 206of the example mobile device 108 may implement an Assisted GPS (A-GPS)process and/or Location Based Services (LBS) based on received locationinformation and add geo-location data to the time packet.

At block 530, vehicle state information is added to the time packet. Forexample, speed information for the vehicle 102 is obtained from thespeedometer 214 directly from the vehicle 102 and/or determined based ongeo-location and time location from one or more cellular base stations110, 112, 114, wireless access point(s) 116, and GPS satellite(s) 118.Thus, the time packet can be formed from the image data, geo-locationdata, and vehicle state information.

At block 540, the time packet is transmitted for analysis. The timepacket can be analyzed locally by the mobile device 108, for example,and/or may be sent to the application server 130 for analysis, forexample. In certain examples, additional information (e.g., cornering,distance between adjacent cars, movement and/or other patternsindicating observance of laws, etc.) can be gathered and transmittedwith the time packet as well. In certain examples, time packets arestreamed for analysis as they become available. In other examples, timepackets are accumulated and provided periodically and/or on request foranalysis.

FIG. 6 is a flowchart representative of example machine-readableinstructions that may be executed to implement block 420 of FIG. 4 toprocess the gathered information regarding the vehicle 102 operation. Atblock 610, the time packet is received for processing by the mobiledevice 108 and/or the application server 130.

At block 620, image data from the time packet is analyzed to extractdriver event(s). For example, still and/or video image data is analyzedto identify one or more driver events such as stop signs, stop lights,other traffic indicators, near or adjacent cars, lane markers, etc.Patterns and objects can be recognized in the image data, and patternmatching can be used to identify when events are occurring (e.g., thevehicle 102 is stopping at a stop light, the vehicle 102 is rollingthrough a stop sign, the vehicle 102 is driving too close to the vehiclein front of it, etc.).

For example, a neural network and/or other machine learning can beimplemented and trained to analyze the image data and extract driverevent(s). For example, one or more machine learning techniques such asan artificial neural network (also referred to as a neural network),other pattern recognition, etc., can be applied by the example imageanalyzer 216 and/or the example image analyzer 306 to the image data toidentify objects and/or other features (also referred to as driverevents) in the image data. In certain examples, the image analyzer 216forms the artificial neural network locally to the mobile device 108. Inother examples, the image analyzer 216 communicates with an externaldevice, such as the example application server 130, which implements theartificial neural network via the image analyzer 306. Neural networksand/or other machine learning methods can be used to identify driverevents in the image data, a task which is otherwise difficult usingrules-based programming.

An artificial neural network is first trained based on known orreference data. Training can involve tuning weights for various elementsor nodes in the network using the known, predetermined, or referencedata (e.g., image data in which identification and location of objectsand/or other features in the image is already known). The trained neuralnetwork can then be used on additional image data to analyze andidentify driver events of interest (e.g., stop signs, traffic lights,vehicles, lane markers, corners, intersections, pedestrians,cross-walks, etc.).

The example artificial neural network can be implemented in a variety ofways including with principal component analysis, independent componentanalysis, cascade learning, etc. For example, an artificial neuralnetwork with independent component analysis can be used to isolatefeatures representing driver events in an image (e.g., facialrecognition, sign recognition, other object recognition, etc.). Usingindependent component analysis (also known as blind source separation),a set of independent components is sought from a combination ofelements. That is, individual objects or features are sought among aplurality of image data (e.g., from dashboard camera footage, etc.). Inindependent component analysis, two components or features areconsidered independent if knowledge of one component implies nothingabout the other component. Independent component analysis can be used byan artificial neural network to analyze data points (e.g., pixels,voxels, etc.) in the image data and organize related data points (e.g.,by color, by proximity, by identified boundary, etc.) into objects orfeatures in the image data.

Weights (also referred to as network weights or neural network weights)can be determined based on data point values and arrangements identifiedin analyzed image data. For example, an initial set of weights can bedetermined by neural network analysis of image data during a networktraining phase. One or more of the weights can be modified by values,patterns, etc., analyzed during an operational phase of the artificialneural network, for example.

In certain examples, using cascade learning (also referred to ascascading learning or cascade correlation), involves beginning with aminimal network of nodes (also referred to as neurons or units), whichthen automatically trains and expands the network to add new “hidden”nodes, resulting in a multi-layered structure. Once a new hidden nodehas been added to the network, its input-side weights are frozen. Theunit then becomes a feature-detector in the network, available forproducing outputs or for creating other, more complex feature detectors.Using cascade learning, the neural network can determine its own sizeand topology and retains the structures it has built even if itstraining set changes, for example. Cascade learning can be used by theartificial neural network to evaluate portions of the image data forobject/feature detection, for example.

In certain examples, the artificial neural network can employ bothindependent component analysis and cascade learning to target relevantfeatures in the image data (e.g., within the dashboard camera or“dash-cam” footage). The feature transformation technique of independentcomponent analysis combined with cascade learning allows the neuralnetwork to isolate local features within an image.

Thus, for example, network weights can be tuned based on priorexperience (e.g., showing images to the neural network to establishdriver event archetypes and then tune those driver event archetypesbased on collected prior driver experiences or norms, etc.). Then, theneural network can be activated with the tuned weights and trained ontest data from someone driving a vehicle (e.g., the vehicle 102) to showthe neural network different driver events (e.g., stopping at a stoplight, running through a stop sign, yielding to oncoming traffic,turning left into oncoming traffic, slowing down before a turn, turningtoo fast, etc.) so that the neural network can learn the driver eventsand distinguish between positive and negative driver events based on thepre-tuned weights and driver event rules.

In certain examples, geo-location information can also be used to helpthe neural network reason in its identification of driver events usinglogic based on location as well as driver event description. Forexample, a stop sign would not be expected in the middle of a road withno intersection. However, a stop sign would be expected at a four-wayintersection, for example. Thus, the neural network is trained toidentify particular patterns at particular times in particularlocations, not just looking for all patterns at all times, for example.

Then, once the neural network has learned how to operate, the neuralnetwork can be put into operation locally, distributed by the exampleapplication server 130 among one or more mobile devices 108, runningremotely from the “cloud” via the application server 130, etc. Incertain examples, a local neural network running on the mobile device108 can receive updates from a cloud and/or centralized neural networkmaintained by the application server 130. In certain examples, localizedneural networks running on a plurality of mobile devices 108 in aplurality of vehicles 102 can learn from each other (e.g., exchangingupdates, driver event experiences, and/or other messages via theapplication server 130, etc.).

At block 630, for each extracted driver event, the driver event isidentified (e.g., stop sign, stop light, adjacent car, lane marker,street corner, intersection, etc.). For example, the artificial neuralnetwork (or an array of artificial neural networks at an external devicesuch as the example application server 130, etc.) is trained to target adriver events based on preset and/or learned driver event definitions,rules, etc. (e.g., stop signs, traffic lights, car bumpers, pedestrians,crosswalks, corners, intersections, obstacles, etc.). Once these eventsare isolated and/or otherwise extracted in the image data, the driverevents are identified by associating each event with a name, type,category, classification, and/or other identifier.

FIG. 7 illustrates an example analyzed image 700 including a pluralityof driver events 702, 704, 706 identified in the image 700. As shown inthe example image 700, the neural network identified three driver events702, 704, 706 in the image data (e.g., a screenshot from dashboardcamera video footage). For example, a lane marker 702 is identified as adriver event in the image data 700 and can be used to evaluate whetherthe vehicle 102 stays in its lane. An intersection marker 704 is alsoidentified as a driver event in the image data 700 and can be used toevaluate whether the vehicle 102 slows as it approaches the intersectionand whether the vehicle 102 stops at the intersection, for example. Astop sign 706 is also identified as a driver event in the image data 700and can be used to evaluate whether the vehicle 102 stops for the stopsign 706 or not.

As shown in the example of FIG. 7, the stop sign 706 is extracted fromthe image data 700 and identified by the neural network throughrecognition of a post 708 and hexagonal sign 710 having certain coloringand lettering recognizable by the neural network as a traffic sign and,more specifically, as a stop sign 706. An indication of theidentification of the driver event and an associated accuracy orconfidence in identification 712 can also be provided in conjunctionwith the identification of the stop sign 706 to provide feedback to areview, operator, neural network, etc., in making the identificationfrom the image data 700, for example. A distance 714 can also bemeasured based on geo-location information regarding the vehicle 102 andgeometry between the vehicle 102 and the stop sign 706. A speed andspeed limit 716 can also be determined and noted for the vehicle 102 inthe example image 700.

At block 640, based on the identification of the driver event, a rule isextracted for vehicle behavior with respect to the driver event. Forexample, an expected, normal, reference, or legal behavior (and/or acontrast to unexpected or illegal behavior) can be defined as a rulethat can be identified in a data store of rules (e.g., stored in theexample data repository 220 and/or data repository 310, etc.). Driverevent rules can include stopping at a stop sign or red stop light,slowing down at a yield sign or yellow light, slowing down and using aturn signal before making a turn, leaving two car lengths between thevehicle 102 and a vehicle in front, etc.

At block 650, one or more additional factors can be combined with theidentified driver events and driver event rules. For example, a distancebetween the identified driver event and the vehicle 102 is determinedbased on geo-location information (e.g., distance between the vehicle102 and a stop sign, change in distance over time between the vehicle102 and an intersection, etc.). Vehicle 102 speed can also be consideredwhen evaluating identified driver events with respect to driver eventrules. For example, a speed at which the vehicle 102 is approaching atraffic light and/or a change in speed over a time interval at which thevehicle 102 approaches a traffic light, etc., can also be identified.

At block 660, compliance with a driver event rule is evaluated based onone or more elements in the identified information including driverevent(s) from the image data, geo-location information, and/or speed,etc. Compliance with a driver rule can be evaluated by comparingidentified driver events, alone or in conjunction with geo-location,speed, and/or other identified information, over a plurality of pointsin time to determine how distance and/or speed changes, for example. Forexample, a stop sign can be identified as a driver event in the imagedata, and vehicle 102 speed can also be identified and tracked todetermine whether the vehicle 102 slows down and stops at the stop sign.

For example, as shown in FIG. 7, the indication of current speed andspeed limit 716 can be evaluated to: 1) determine whether the vehicle102 is traveling within the specified speed limit and 2) determinewhether the vehicle 102 is slowing down as it approaches the stop sign706 to come to a stop at the stop sign 706 before continuing through theintersection. Such data can be evaluated in a snap shot and/or overtime, for example.

At block 670, an indication of compliance is output. For example, dataused to generate an assessment (e.g., a stop sign 706 assessment, etc.)and/or other data indicating whether identified driver events are incompliance with driver event rules for the vehicle 102 can be output fordisplay, further processing, etc.

At block 680, if additional driver events have been extracted from theimage data of the time packet, control returns to block 630 to identifythe next extracted driver event. However, if all extracted driver eventshave been identified and evaluated, control returns to the process 400.

FIG. 8 is a flowchart representative of example machine-readableinstructions that may be executed to implement block 430 of FIG. 4 togenerate an evaluation based on the processed data. At block 810, theprocessed data is received and combined. For example, driver event data,compliance information, and/or other information such as speed, g-force,and/or other car sensor information is received and combined.Geo-location and/or other sensor data (speed, time, g-force, etc.) canbe used to flag driver events from among the identified and processeddriver events to determine which driver events are relevant to a driverquality calculation, for example. Thus, car sensor information,geo-location, and machine learning from acquired image data can be usedto generate an evaluation of operator behavior/driving quality.

At block 820, one or more driving metrics are calculated based on thecombined, processed data. For example, one or more driving metrics caninclude a) compliance with stop signs, b) compliance with trafficlights, c) compliance speed limits, d) turn signal usage, e) corneringg-force, f) lane centering, and/or g) lead car proximity.

For example, on approach to a stop sign 706, the stop sign object 706 isidentified from the video feed from the dash-cam. Distance and car speedare also monitored to determine if the driver came to a complete stop,rolled through the stop sign, or ran the stop sign. The driver'sbehavior at this stop sign event is added to other stop sign events, andan average stop sign metric can be calculated over a given time period.FIG. 9 illustrates an example stop sign assessment 900 indicating anumber of times 902 the vehicle stopped at a stop sign and a length oftime 904 for which the vehicle was stopped at the stop sign beforecontinuing. Similar assessments can be generated for the other metricsand aggregated over time as well.

At block 830, driving metrics can be combined to generate an overallevaluation or score for the vehicle operator. For example, as shown inan example driver report 1000 of FIG. 10, a report card 1010 includes aplurality of metric assessments 1011-1017 including stop signs 1011,traffic lights 1012, acceleration 1013, tailgating 1014, turn signal1015, speed 1016, and staying in lane 1017. The metrics 1011-1017 in thereport card 1010 can be combined (e.g., averaged) to form a composite oroverall score for the vehicle operator, such as the overall score 1020illustrated in the example of FIG. 10. As shown in the example scorecard1000, the overall score 1020 can be represented in one or more of aplurality of formats including a numeric format (e.g., a value orpercentage (e.g., 79%), a ranking or “grade” (e.g., C+), a graphicalindicator (e.g., an arc or partially formed circle as in the example ofFIG. 10 to indicate a roughly 80% compliance), etc. The overall orcomposite score 1020 provides a snapshot or overall evaluation, whilethe individual metric scores 1011-1017 highlight areas for improvement,for example. A menu or set of options 1030 allows a user to view anoperator profile, choose a time period for review, and/or view/set otherreport parameters, for example.

At block 840, the report is output. For example, the application server130 transmits the report scorecard 1000, and/or its constituentinformation, to the mobile device 108 and/or one or more externaldevices. If the mobile device 108 generates and/or receives the report,the mobile device 108 can output the report via the user interface 222,store the report in the data repository 220, transmit the report toanother recipient, etc. Areas of concern (e.g., metrics 1011-1017falling below a legal or acceptable threshold, etc.) can be highlightedand monitored with heightened scrutiny to identify and alert to animprovement, trend, or other change (positive or negative) in operatorbehavior, for example. In certain examples, the mobile device 108triggers a warning or other indication (e.g., activates a light, sound,and/or vibration to warn of an approaching stop sign or traffic light,an upcoming turn, an approaching vehicle, etc.) to help encourageimproved behavior with respect to a metric 1011-1017 and its associateddriver event(s). In certain examples, warning thresholds, selectedmetrics, specific tunable driving actions, etc. are customizable byoperator, car owner, insurance company, manufacturer, law enforcement,etc. In certain examples, feedback can be provided regarding a trendover time, improvement/regression, etc., via the mobile device 108,application server 130, and/or other output.

Thus, certain examples provide a combination of geo-location, car sensorinformation, and machine learning image analysis to extract driverevents, identify corresponding rules, and determine vehicle operatorcompliance with the rules based on the driver events. Car location andsensor information can help the machine learning system (e.g., theneural network) identify and learn to focus on relevant aspects ofmonitored data to automatically evaluate driver performance.

FIG. 11 is a block diagram of an example processor platform 1100 capableof executing the example instructions of FIGS. 4-6 and 8 to implementthe example environment and devices of FIGS. 1-3, 7, and 9-10. Theprocessor platform 1100 can be, for example, a personal computer, atablet, a smartphone, or any other type of mobile computing device,including for example, the example mobile device 108.

The processor platform 1100 of the illustrated example includes aprocessor 1112. The processor 1112 of the illustrated example ishardware. For example, the processor 1112 can be implemented by one ormore integrated circuits, logic circuits, microprocessors or controllersfrom any desired family or manufacturer.

The example processor 1112 includes a local memory 1114 (e.g., a cache).The example processor 1112 also includes the example image analyzer 216and the example state determiner 218 of FIG. 2 and/or the example imageanalyzer 306 and example state determiner 308 of FIG. 3.

The processor 1112 of the illustrated example is in communication withone or more example sensors 1116 via a bus 1118. The example sensors1116 include the example speedometer 214 of FIG. 2.

The processor 1112 of the illustrated example is in communication with amain memory including a volatile memory 1120 and a non-volatile memory1122 via the bus 1118. The volatile memory 1120 may be implemented bySynchronous Dynamic Random Access Memory (SDRAM), Dynamic Random AccessMemory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or anyother type of random access memory device. The non-volatile memory 1122may be implemented by flash memory and/or any other desired type ofmemory device. Access to the main memory 1120, 1122 is controlled by amemory controller.

The processor platform 1100 of the illustrated example also includes aninterface circuit 1124. The interface circuit 1124 may be implemented byany type of interface standard, such as an Ethernet interface, auniversal serial bus (USB), and/or a PCI express interface. In theillustrated example, one or more input devices 1126 are connected to theinterface circuit 1124. The input device(s) 1126 permit(s) a user toenter data and commands into the processor 1112. The input device(s)1126 can be implemented by, for example, a keyboard, a mouse, atouchscreen, a track-pad, a trackball, isopoint and/or a voicerecognition system. One or more output devices 1128 are also connectedto the interface circuit 1124 of the illustrated example. The outputdevices 1128 can be implemented, for example, by display devices (e.g.,a liquid crystal display, a cathode ray tube display (CRT), atouchscreen and/or speakers). The interface circuit 1124 of theillustrated example, thus, typically includes a graphics driver card, agraphics driver chip or a graphics driver processor. In the illustratedexample, the input device(s) 1126 and the output device(s) 1128collectively form the example user interface 222 of FIG. 2 and/or theexample user interface 312 of FIG. 3.

The processor platform 1100 of the illustrated example also includes anetwork communication interface circuit 1130. The network communicationinterface circuit 1130 may be implemented by any type of interfacestandard, such as an Ethernet interface, a universal serial bus (USB),and/or a PCI express interface. In the illustrated example, the networkinterface circuit 1130 includes the example GPS receiver 202, theexample radio receiver 206 and the example radio transmitter 210 of FIG.2 and/or the example vehicle data input 302 and output 314 of FIG. 3 tofacilitate the exchange of data and/or signals with external machines(e.g., a cellular base station, a wireless access point, satellite,computing devices of any kind, etc.) via a network 1132 (e.g., acellular network, a wireless local area network (WLAN), a GPS network,an Ethernet connection, a digital subscriber line (DSL), a telephoneline, coaxial cable, etc.).

The processor platform 1100 of the illustrated example also includes oneor more mass storage devices 1134 for storing software and/or data.Examples of such mass storage devices 1234 include floppy disk drives,hard drive disks, compact disk drives, Blu-ray disk drives, RAIDsystems, and digital versatile disk (DVD) drives. In the illustratedexample, the mass storage device 1134 includes the example datarepository 220 of FIG. 2 and/or the example data repository 310 of FIG.3.

Coded instructions 1136 implementing the machine-readable instructionsof FIGS. 4-6 and 8 may be stored in the local memory 1114, in thevolatile memory 1120, in the non-volatile memory 1122, in the massstorage device 1134, and/or on a removable tangible computer readablestorage medium such as a CD or DVD.

Thus, certain examples provide methods and apparatus to evaluate vehicleoperator behavior. An example method includes processing, using aparticularly programmed processor, image data obtained with respect to avehicle to identify an object in the image data. The example methodincludes measuring, using the mobile device, a geographic location ofthe vehicle. The example method includes determining, using the mobiledevice, an operating state of the vehicle. The example method includesanalyzing the object in the image data, the geographic location, and theoperating state of the vehicle to determine a behavior of the vehicle.The example method includes generating a score for a driver associatedwith the vehicle by comparing the behavior of the vehicle with a normalbehavior (also referred to as a reference behavior), the referencebehavior quantified by one or more driving metrics. The example methodincludes outputting the score.

From the foregoing, it will be appreciated that the disclosed methodsand apparatus advantageously provide monitoring and insight into vehicleoperator behavior on a vehicle-by-vehicle basis. The disclosed methodsand apparatus advantageously provide an infrastructure for individualvehicle monitoring and “cloud-based” or remote aggregation andmonitoring of vehicle activity. For example, a neural network can bedeveloped, trained, and tested and dynamically deployed to vehicles formonitoring and analysis.

From the foregoing, it will also be appreciated that the aforementionedadvantages may be provided in conjunction with one or more datacollection, analytics, and monitoring processes disclosed herein thatfacilitate improved operator behavior, compliance, and safety invehicles. The improved behavior, compliance, and safety may be ofparticular importance for new drivers, insurance companies, lawenforcement, and vehicle design.

Although certain example methods, apparatus and articles of manufacturehave been disclosed herein, the scope of coverage of this patent is notlimited thereto. On the contrary, this patent covers all methods,apparatus and articles of manufacture fairly falling within the scope ofthe claims of this patent.

1. A method comprising: processing, using a mobile device including aprocessor, image data obtained with respect to a vehicle to identify anobject in the image data; measuring, using the mobile device, ageographic location of the vehicle; determining, using the mobiledevice, an operating state of the vehicle; analyzing the object in theimage data, the geographic location, and the operating state of thevehicle to determine a behavior of the vehicle; generating a score for adriver associated with the vehicle by comparing the behavior of thevehicle with a reference behavior, the reference behavior quantified byone or more driving metrics; and outputting the score.
 2. The method ofclaim 1, wherein the processing further includes processing the imagedata using an artificial neural network with independent componentanalysis to identify an object in the image data.
 3. The method of claim1, wherein the processing further includes processing the image datausing an artificial neural network with cascade learning to identify anobject in the image data.
 4. The method of claim 1, wherein theanalyzing further includes calculating a proximity of the object to thevehicle based on the image data.
 5. The method of claim 1, wherein theobject is indicative of a driver event.
 6. The method of claim 1,wherein the operating state includes a speed of the vehicle.
 7. Themethod of claim 1, wherein the one or more driving metrics includes atleast one of: a) compliance with stop signs, b) compliance with trafficlights, c) compliance with speed limits, d) turn signal usage, e)cornering g-force, f) lane centering, or g) lead car proximity.
 8. Themethod of claim 1, wherein the reference behavior is described by adriver event rule.
 9. The method of claim 1, wherein the score includesan overall score and scores for each of the one or more driving metrics.10. The method of claim 1, wherein the analyzing and generating arefacilitated via an application server.
 11. A device comprising: a memoryincluding machine readable instructions; and a processor to execute theinstructions to: process image data obtained with respect to a vehicleto identify an object in the image data; measure a geographic locationof the vehicle; determine an operating state of the vehicle; analyze theobject in the image data, the geographic location, and the operatingstate of the vehicle to determine a behavior of the vehicle; generate ascore for a driver associated with the vehicle by comparing the behaviorof the vehicle with a reference behavior, the reference behaviorquantified by one or more driving metrics; and output the score.
 12. Thedevice of claim 11, wherein the processor is further to execute theinstructions to process the image data using an artificial neuralnetwork with independent component analysis to identify an object in theimage data.
 13. The device of claim 11, wherein the processor is furtherto execute the instructions to process the image data using anartificial neural network with cascade learning to identify an object inthe image data.
 14. The device of claim 11, wherein the processor isfurther to execute the instructions to analyze the object in the imagedata by calculating a proximity of the object to the vehicle based onthe image data.
 15. The device of claim 11, wherein the object isindicative of a driver event.
 16. The device of claim 11, wherein theoperating state includes a speed of the vehicle.
 17. The device of claim11, wherein the one or more driving metrics includes at least one of: a)compliance with stop signs, b) compliance with traffic lights, c)compliance with speed limits, d) turn signal usage, e) corneringg-force, f) lane centering, or g) lead car proximity.
 18. The device ofclaim 11, wherein the reference behavior is described by a driver eventrule.
 19. The device of claim 11, wherein the score includes an overallscore and scores for each of the one or more driving metrics.
 20. Atangible machine-readable storage medium including instructions that,when executed, cause a machine to perform operations comprising:processing image data obtained with respect to a vehicle to identify anobject in the image data; measuring a geographic location of thevehicle; determining an operating state of the vehicle; analyzing theobject in the image data, the geographic location, and the operatingstate of the vehicle to determine a behavior of the vehicle; generatinga score for a driver associated with the vehicle by comparing thebehavior of the vehicle with a reference behavior, the referencebehavior quantified by one or more driving metrics; and outputting thescore. 21.-28. (canceled)